#pragma once
#include "common.h"
#include "IWindow.h"
#include "IRenderContext.h"

struct EngineSetup {
	RENDER_CONTEXT_TYPE RenderType;
	WindowSetup 		Window;
};

struct IGameEngine {
	virtual void		Run() const = 0;
	virtual IWindow*	GetWindow() const = 0;
    virtual void        Release() = 0;
};

E_DLL_DECL IGameEngine* CreateGameEngine(const EngineSetup& setup);